home *** CD-ROM | disk | FTP | other *** search
- %BEGIN Arcs
- /arcpath
- {
- /finishAng exch def
- /startAng exch def
- /lastright exch def
- /lastbottom exch def
- /lastleft exch def
- /lasttop exch def
- newpath
- lastright lastleft sub % compute width & height
- lastbottom lasttop sub
- lastbottom lastleft setupForArcPath
- /radius exch def
- /yoffset exch def
- /xoffset exch def
- xoffset yoffset moveto
- xoffset yoffset radius startAng finishAng arc
- closepath
- }
- def
- /frameArc
- {
- /finishAng exch def
- /startAng exch def
- /lastright exch def
- /lastbottom exch def
- /lastleft exch def
- /lasttop exch def
-
- gsave
- penPattern usePattern
-
- /thewidth lastright lastleft sub def
- /theheight lastbottom lasttop sub def
- penHeight 1 eq
- penWidth 1 eq
- and
- {
- newpath
- thewidth theheight lastbottom lastleft setupForArcPath
- startAng finishAng arc
- stroke
- }
- {
- penHeight 0 gt % We don't want to draw with a 0 sized pen.
- penWidth 0 gt
- and
- {
- /startmatrix matrix currentmatrix def
- newpath
- thewidth theheight lastbottom lastleft setupForArcPath
- startAng finishAng arc
- startmatrix setmatrix
- /innerRight lastright penWidth sub 1 add def
- /innerTop lasttop penHeight add 1 sub def
- /innerLeft lastleft penWidth add 1 sub def
- /innerBottom lastbottom penHeight sub 1 add def
- /innerWidth innerRight innerLeft sub def
- /innerHeight innerBottom innerTop sub def
-
- innerWidth innerHeight innerBottom innerLeft
- setupForArcPath
- finishAng startAng arcn
- closepath
- fill
- }
- if
- }
- ifelse
- grestore
- }
- def
- /paintArc
- {
- gsave
- penPattern usePattern
- arcpath
- fill
- grestore
- }
- def
- /eraseArc
- {
- gsave
- backPattern usePattern
- arcpath
- fill
- grestore
- }
- def
- /invertArc
- {
- gsave
- arcpath
- grestore
- }
- def
- /fillArc
- {
- gsave
- fillPattern usePattern
- arcpath
- fill
- grestore
- }
- def
- /frameSameArc
- {
- /endAng exch def
- /startAng exch def
- lasttop lastleft lastbottom lastright startAng endAng frameArc
- }
- def
- /paintSameArc
- {
- /endAng exch def
- /startAng exch def
- lasttop lastleft lastbottom lastright startAng endAng paintArc
- }
- def
- /eraseSameArc
- {
- /endAng exch def
- /startAng exch def
- lasttop lastleft lastbottom lastright startAng endAng eraseArc
- }
- def
- /invertSameArc
- {
- /endAng exch def
- /startAng exch def
- lasttop lastleft lastbottom lastright startAng endAng invertArc
- }
- def
- /fillSameArc
- {
- /endAng exch def
- /startAng exch def
- lasttop lastleft lastbottom lastright startAng endAng fillArc
- }
- def
- %END Arcs
-